#include "notifier.h"

void network::notifier::add_listener(boost::shared_ptr<network::listener> l)
{
	boost::mutex::scoped_lock lck(_mon);
	_list.push_back(l);
}

void network::notifier::remove_listener(boost::shared_ptr<network::listener> l)
{
	boost::mutex::scoped_lock lck(_mon);
	_list.remove(l);
}

void network::notifier::fire_listener()
{
	boost::mutex::scoped_lock l(_mon);
	typedef list<boost::shared_ptr<network::listener> >::iterator it;
	for(it i = _list.begin(); i != _list.end(); ++i) {
		(*i)->notify(this);
	}
}

